function removeHtmlTags(str) {
  // 正则表达式解释:
  // <     - 匹配左尖括号
  // .*?   - 非贪婪匹配任意字符（尽可能少地匹配）
  // >     - 匹配右尖括号
  // g     - 全局匹配模式
  return str.replace(/<.*?>/g, '');
}

//解码
function decodeHTMLEntities(text) {
  const entities = {
    '&nbsp;': ' ',
    '&amp;': '&',
    '&lt;': '<',
    '&gt;': '>',
    '&quot;': '"',
    '&apos;': "'",
    '&cent;': '¢',
    '&pound;': '£',
    '&yen;': '¥',
    '&euro;': '€',
    '&copy;': '©',
    '&reg;': '®',
    // 添加更多实体需要时可以扩展
  };

  return text.replace(/&(?:[a-z]+|#\d+|#x[\da-f]+);/gi, (match) => {
    if (entities[match]) {
      return entities[match];
    }

    // 处理数字实体如 &#160; &#x000A0;
    if (match.startsWith('&#x')) {
      const hex = match.slice(3, -1);
      return String.fromCodePoint(parseInt(hex, 16));
    } else if (match.startsWith('&#')) {
      const decimal = match.slice(2, -1);
      return String.fromCodePoint(Number(decimal));
    }

    // 未知实体返回原字符串
    return match;
  });
}

module.exports= {
	removeHtmlTags,
	decodeHTMLEntities
}